package innerclass;

import javax.swing.*;
import java.awt.event.ActionListener;

public class Test {
    public static void main(String[] args) {
        //目标：搞清楚匿名内部类的使用场景
        //需求：创建一个登录窗口，登录窗口中有一个登录按钮
        JFrame win = new JFrame("登录窗口");
        win.setSize(300,300);//设置窗口大小
        win.setLocationRelativeTo(null);//居中
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出程序

        JPanel p = new JPanel();//创建面板
        win.add(p);//添加面板

        JButton b = new JButton("登录");
        p.add(b);//添加登录按钮


        //java要求必须给这个按钮添加一个点击事件监听器对象，这样就可以监听用户的点击操作，并做出相应的响应
        //开发中不是我们要主动去写匿名内部类，而是看需求

        //b.addActionListener(new MyActionListener());//底层是接口，所以要实现接口，在实现类中重写方法1.

        b.addActionListener(new ActionListener() {//ctrl+鼠标左键 看底层的代码2.
            @Override //重写底层方法
            public void actionPerformed(java.awt.event.ActionEvent e) {
                System.out.println("点击了登录按钮");
            }
        });

        //简化
        //b.addActionListener(e -> System.out.println("点击了登录按钮"));//3.

        win.setVisible(true);//显示窗口

    }
}

//class MyActionListener implements ActionListener{
//    @Override
//    public void actionPerformed(java.awt.event.ActionEvent e) {
//        System.out.println("点击了登录按钮");
//    }
//}
